(計実) 第4回 シェル(1)とPython(1)
◆0.はじめに
◎出席: 今日のrespon:締切は15時
https://gyazo.com/88ec1bc458c08d1d865c1dd4354f8836
1. 教室番号/参加場所:対面ならPC番号/OLは参加場所
2. キーワード:冒頭に伝える
3. 前回の内容の自己評価:成績とは無関係
★今回の注意★
■1. 提出課題への取り組み方 ◀◀ 要確認!
課題文をよく読まずに解答しているケースが多く見られるのが残念です.
第3回課題は小問(a,b,c..)に分かれています.それらは一連の流れになっていることを理解してください.また,細かい作業の繰り返しなので,混乱しないよう,丁寧に設問を追いかけてください.
※設問を丁寧に,というのは実技テストにも関わる大切なことです.
■2. パスワード
sudo を使ったコマンド実行時に,自分のパスワードを聞かれます.うまく通らないときは,以下を参照して,パスワード確認・再設定をしてください.
★今回の内容★
今回の実習でUnixの基本コマンドの使い方については最後です.
今回はまず,Unixのシェルについて学習します.Unixだけでなく,どのOSにも関連した重要なものなので,しっかりと理解しておく必要があります.
次に,今回から3回にわたり,"Python"というプログラミング言語を使ってプログラミングの基礎の基礎を学習します.
※Pythonは後期セメスターの計算機実習2など,今後の情報系実習で引き続き使う
★なお,第7回の実技テストは今回(第4回)の内容までを対象とします ( ただし,Python関係のことは直接含まない ) . → 詳しくは次回第5回にて案内
ファイルやディレクトリの操作,nanoエディタ,保護モード,フィルタなどについてしっかりと復習するとともに,手早く操作ができるように練習しておいてください ( 例年,皆さん時間が不足気味 ) .
求められるスキルは「速さ」と「正確さ」.
時間内に指示内容を理解する → 的確に素早く操作する → 適切な回答を書く
code:第4回 目次
1.日本語環境を整える
2.便利なコマンド(2)
3.ワイルドカードとシェル(1)
4.プログラミングことはじめ
5.Pythonことはじめ
<計実 第4回課題>
さて,始めましょう.今日も盛り沢山です.
◆1.日本語環境を整える
まず,Unixの日本語環境について触れておこう.
Unixは元々アメリカで開発されたものだ.したがってコマンドやメッセージはすべて英語である.
が,Unixが世界に広がっていくに伴い,数多くの国や言語に対応するようになった.この国/言語の設定を「ロケール ( locale )」と呼ぶ.例えば,
table:locale例
国 符号系 ロケール名
日本 UTF-8 ja_JP.UTF-8
アメリカ UTF-8 en_US.UTF-8
中国 簡体字UTF-8 zh_CN.UTF-8
日本 ShiftJIS ja_JP.SJIS
システムデフォルト - C
※UTFとかSJISというのは言語独自のコード体系のこと.現在は多言語を切り替えられるUTFの中の8bit符号系であるUTF-8が主流になっている (WindowsはいまだにShift-JISを引きずっている) .
※参考:
UbuntuもMacOSも,初めにインストールしたまま ( デフォルト ) だと英語表記.
→ エラー表示や,前回学んだ man page ( Unixのコマンドマニュアル ) など,様々な情報がすべて英語
なので,ここでは,
1. 日本語ロケールに適応したシステム表示
2. 日本語man page
の2つを設定したい.
以下,WSL-UbuntuとMacOSに分けて,別ノートで説明するので実際にやってみること.
★注意★ 言語表記は今後の実習内容に直接影響するものではない.
ロケール対応の手続きはやや複雑なので,難しいと感じたら無理して日本語にする必要はない.
英語のman pageは中学程度の英語なので,単語さえわかれば十分読める.
そもそも日本語のman pageを持っていないコマンドも多くある.上記の作業をしたところで,すべてが日本語になるわけではない.
← 逆に言えば,日本語化しても英語の情報からは逃げられない.
★確認★ 以上の手順が済んだら,実際にman pageを開いてみよう.
※ man pageの詳細は前回で学習したが,日本語化してどうなったか確認してみよう.
code: ▼はEnter
$ man ls▼
$ man man▼
$ man cp▼
などなど.
※日本語化した後でも,あえて英語のman pageを表示もできる.比較してみるのも勉強になるだろう.
( Ubuntu )
$ man -L C grep▼
という具合に" -L C"または"-L US"をつければ英語のman pageになる.
( MacOS )
$ env LANG=C man grep▼
'LANG' という環境変数を書き換えてmanを実行している.いちいち 'env...' と打鍵するのが面倒な場合,以下のようにシェルのaliasを使えばよいだろう.
alias man='env LANG=C man'
alias jman='env LANG=ja_JP.UTF-8 man'
▲▲ を ~/.bashrc ファイルに追記すれば,'man xxx' で英語版,'jman xxx'で日本語版を表示できる.
繰り返すが,うまく日本語化できなくても今後の実習に支障はない.英語を読めばよい.
◆2.便利なコマンド(2)find,grepなど
教科書第10章 ( p.151~p.160 ) を読み,書いてあることを実際に確かめながら学習しなさい.
ここにでてくるコマンド ( find , grep , less , man 等 ) のうち,すでに登場しているものもあるが,復習のつもりで一通りやること.全てUnixにおいて頻繁に使う便利なものである.
★ここでのコマンドは実技テストに出る可能性が高い.
◆3.シェル入門
UnixというOSの設計は「シェル」と「カーネル」にシステムを分けることで柔軟なシステムを構成している.以下の記事はシェルの使い方の基本を説明したものである.
一通り読んで実際に試し,シェルの機能を理解すること.
※上記教材の中に 教科書の第9章「シェルを理解する」( p.127~p.147 ) のうち,
9-1「シェルとは」
9-2「シェル変数と環境設定 ( Bシェル編 ) 」
9-4「特殊記号でファイルを探す」
が出てくる.しっかり読んで理解しよう.
◎ワイルドカード
上記シェル入門の一部に,ファイルを指定する方法として「ワイルドカード」という記号法がある.これは非常に頻繁に活用するので,特に取り上げておく.
教科書 9-4 節「特殊記号でファイルを探す」(p.142~p.147)を読み, 例についても実際に入力して理解しなさい.「今回の課題」はこれを理解していないと答えられない.
※1回やっただけではわからない.同じことを何回かやってみること.
◎シェルの履歴機能
前回冒頭で紹介したが,Unixのシェルには,履歴 (history) 機能がある. これを使うと仕事の効率が確実にアップする.積極的に活用しよう.
a. プロンプトで上矢印キーを押すと,一つ前に入力したコマンドを呼び出せる.
b. "history"と入力すると,履歴リストが表示される.
code:historyの例:藤井の場合
$ history
1015 ls
1016 pwd
1017 jwoeijfwoiejfqpfj
1018 clear
||
|| #このように番号つきでいっぱい表示される
||
2002 which nkf
2003 history
$
c. "!xxx"(xxxは履歴番号)と,履歴番号を指定すると,そのコマンドを実行できる.
code:history番号指定の例
$ !2002 ← 上のリストの2002番目をもう一度実行
which nkf
/usr/bin/nkf
$
これ以外にも便利な使い方があるので,以下のリンクを参考に一通りやってみること.
★注意★:バックスラッシュ\と¥マーク
教科書p.146に書いてあるが,Ubuntuでは,半角でバックスラッシュ"\"を入力しようとすると,円マーク"¥"が表示される.※注意:ここでの"\"と"¥"は全角である.
MacOSの場合は逆で¥を押すと\が出る.
これは,日本語半角JISの特徴である.半角"¥"マークと,"\"マーク=半角バックスラッシュは,コード的にも同義であり,どちらが表示されるかはシステムの設定次第である.
"¥"が出ても気にせず,バックスラッシュと考えて作業すること.
※※表記上の注意※※ この記事の説明でも「バックススラッシュ」「円マーク」を全角で表示しているのは,半角では意図したとおりに表示されない場合があるから
※注意:スラッシュ"/"とバックスラッシュ"\"は別物.間違えないこと!
◆4.プログラミングことはじめ
皆さんにはすぐにでもPythonに接してもらいたい.ここでは手短に,Python学習のポイントをいくつか挙げておく.
※「プログラミング言語とはなにか」「Pythonとはなにか」という話は後述に
( 1 ) プログラムは手順書である.
▲▲ ざっくりした解説記事.流し読みでいいから一読しよう.
( 2 ) プログラミング言語の要点は基本ルール,分岐,繰り返し,関数である.
Pythonでは:文法と予約語,"if~elif~else文","for文/while文","def文"
( 3 ) Pythonは大人気の万能型インタプリタである
開発 (プロトタイピングやAI開発等)と実装 (YouTube , Instagram等)の両方で注目
初めは興味本位で十分.少しでも面白いと思うものから始めて,興味の幅を広げていこう.
次節はPythonの使い方を一通り説明する.
◆5.Pythonことはじめ
ここではまず,Pythonの起動・終了など基本操作を学び,次にPythonを起動して対話モードになり,簡単なコマンドを入力してPythonを体験する.また,簡単なプログラムファイルを作成し,それを実行する.
以下にまとめたので一通り読み,実行すること.
以上.
2022/6/23 by Kobori Satoshi, Fujii Daisuke
[理系なら知っておくべき美しい数式04]
$ e^{i\pi} = -1
オイラーの公式